home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 January: Mac OS SDK / Dev.CD Jan 96 SDK / Dev.CD Jan 96 SDK1.toast / Development Kits (Disc 1) / Display Manager / Compiler & Runtime Files / • New universal header files • / CIncludes / Displays.h next >
Encoding:
C/C++ Source or Header  |  1995-07-18  |  23.6 KB  |  518 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Displays.h
  3.  
  4.      Contains:    Display Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces in “Display Manager Development Kit” (post ETO #18)
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. */
  19.  
  20. #ifndef __DISPLAYS__
  21. #define __DISPLAYS__
  22.  
  23.  
  24. #ifndef __CONDITIONALMACROS__
  25. #include <ConditionalMacros.h>
  26. #endif
  27.  
  28. #ifndef __COMPONENTS__
  29. #include <Components.h>
  30. #endif
  31. /*    #include <Types.h>                                            */
  32. /*    #include <MixedMode.h>                                        */
  33.  
  34. #ifndef __VIDEO__
  35. #include <Video.h>
  36. #endif
  37. /*    #include <Quickdraw.h>                                        */
  38. /*        #include <QuickdrawText.h>                                */
  39.  
  40. #ifndef __APPLEEVENTS__
  41. #include <AppleEvents.h>
  42. #endif
  43. /*    #include <Errors.h>                                            */
  44. /*    #include <Memory.h>                                            */
  45. /*    #include <OSUtils.h>                                        */
  46. /*    #include <Events.h>                                            */
  47. /*    #include <EPPC.h>                                            */
  48. /*        #include <AppleTalk.h>                                    */
  49. /*        #include <Files.h>                                        */
  50. /*            #include <Finder.h>                                    */
  51. /*        #include <PPCToolbox.h>                                    */
  52. /*        #include <Processes.h>                                    */
  53. /*    #include <Notification.h>                                    */
  54.  
  55. #ifndef __WINDOWS__
  56. #include <Windows.h>
  57. #endif
  58. /*    #include <Controls.h>                                        */
  59. /*        #include <Menus.h>                                        */
  60.  
  61. #ifndef __EVENTS__
  62. #include <Events.h>
  63. #endif
  64.  
  65. #ifndef __PROCESSES__
  66. #include <Processes.h>
  67. #endif
  68.  
  69. #ifndef __DIALOGS__
  70. #include <Dialogs.h>
  71. #endif
  72. /*    #include <TextEdit.h>                                        */
  73.  
  74. #ifdef __cplusplus
  75. extern "C" {
  76. #endif
  77.  
  78. #if PRAGMA_ALIGN_SUPPORTED
  79. #pragma options align=mac68k
  80. #endif
  81.  
  82. #if PRAGMA_IMPORT_SUPPORTED
  83. #pragma import on
  84. #endif
  85.  
  86.  
  87. enum {
  88. /* AppleEvents Core Suite */
  89.     kAESystemConfigNotice        = 'cnfg',
  90. /* Core Suite types */
  91.     kAEDisplayNotice            = 'dspl',
  92.     kAEDisplaySummary            = 'dsum',
  93.     keyDMConfigVersion            = 'dmcv',
  94.     keyDMConfigFlags            = 'dmcf',
  95.     keyDMConfigReserved            = 'dmcr',
  96.     keyDisplayID                = 'dmid',
  97.     keyDisplayComponent            = 'dmdc',
  98.     keyDisplayDevice            = 'dmdd',
  99.     keyDisplayFlags                = 'dmdf',
  100.     keyDisplayMode                = 'dmdm',
  101.     keyDisplayModeReserved        = 'dmmr',
  102.     keyDisplayReserved            = 'dmdr',
  103.     keyDisplayMirroredId        = 'dmmi',
  104.     keyDeviceFlags                = 'dddf',
  105.     keyDeviceDepthMode            = 'dddm',
  106.     keyDeviceRect                = 'dddr',
  107.     keyPixMapRect                = 'dpdr',
  108.     keyPixMapHResolution        = 'dphr',
  109.     keyPixMapVResolution        = 'dpvr',
  110.     keyPixMapPixelType            = 'dppt',
  111.     keyPixMapPixelSize            = 'dpps',
  112.     keyPixMapCmpCount            = 'dpcc',
  113.     keyPixMapCmpSize            = 'dpcs',
  114.     keyPixMapAlignment            = 'dppa',
  115.     keyPixMapResReserved        = 'dprr',
  116.     keyPixMapReserved            = 'dppr',
  117.     keyPixMapColorTableSeed        = 'dpct',
  118.     keySummaryMenubar            = 'dsmb',
  119.     keySummaryChanges            = 'dsch',
  120.     keyDisplayOldConfig            = 'dold',
  121.     keyDisplayNewConfig            = 'dnew'
  122. };
  123.  
  124. enum {
  125.     dmOnlyActiveDisplays        = true,
  126.     dmAllDisplays                = false
  127. };
  128.  
  129. enum {
  130. /* Switch Flags */
  131.     kNoSwitchConfirmBit            = 0,                            /* Flag indicating that there is no need to confirm a switch to this mode */
  132.     kDepthNotAvailableBit,                                        /* Current depth not available in new mode */
  133.     kShowModeBit                = 3,                            /* Show this mode even though it requires a confirm. */
  134.     kModeNotResizeBit            = 4                                /* Do not use this mode to resize display (for cards that mode drives a different connector). */
  135. };
  136.  
  137. enum {
  138. /*    Summary Change Flags (sticky bits indicating an operation was performed)
  139.     For example, moving a display then moving it back will still set the kMovedDisplayBit.
  140. */
  141.     kBeginEndConfigureBit        = 0,
  142.     kMovedDisplayBit,
  143.     kSetMainDisplayBit,
  144.     kSetDisplayModeBit,
  145.     kAddDisplayBit,
  146.     kRemoveDisplayBit,
  147.     kNewDisplayBit,
  148.     kDisposeDisplayBit,
  149.     kEnabledDisplayBit,
  150.     kDisabledDisplayBit,
  151.     kMirrorDisplayBit,
  152.     kUnMirrorDisplayBit
  153. };
  154.  
  155. enum {
  156. /* Notification Messages for extended call back routines */
  157.     kDMNotifyInstalled            = 1,                            /* At install time */
  158.     kDMNotifyEvent                = 2,                            /* Post change time */
  159.     kDMNotifyRemoved            = 3,                            /* At remove time */
  160.     kDMNotifyPrep                = 4,                            /* Pre change time */
  161.     kDMNotifyExtendEvent        = 5,                            /* Allow registrees to extend apple event before it is sent */
  162.     kDMNotifyDependents            = 6,                            /* Minor notification check without full update */
  163.     kDMNotifySuspendConfigure    = 7,                            /* Temporary end of configuration */
  164.     kDMNotifyResumeConfigure    = 8,                            /* Resume configuration */
  165. /* Notification Flags */
  166.     kExtendedNotificationProc    = (1L << 16)
  167. };
  168.  
  169. /* types for notifyType */
  170. enum {
  171.     kFullNotify,                                                /* This is the appleevent whole nine yards notify */
  172.     kFullDependencyNotify                                        /* Only sends to those who want to know about interrelated functionality (used for updating UI) */
  173. };
  174.  
  175. /* DisplayID/DeviceID constants */
  176. enum {
  177.     kDummyDeviceID                = 0x0FF,                        /* This is the ID of the dummy display, used when the last “real” display is disabled.*/
  178.     kInvalidDisplayID            = 0x000,                        /* This is the invalid ID*/
  179.     kFirstDisplayID                = 0x100
  180. };
  181.  
  182. enum {
  183. /* bits for panelListFlags */
  184.     kAllowDuplicatesBit            = 0
  185. };
  186.  
  187. enum {
  188. /* bits for nameFlags */
  189.     kSuppressNumberBit            = 0,
  190.     kSuppressNumberMask            = 1,
  191.     kForceNumberBit                = 1,
  192.     kForceNumberMask            = 2,
  193.     kSuppressNameBit            = 2,
  194.     kSuppressNameMask            = 4
  195. };
  196.  
  197. /* Constants for fidelity checks */
  198. enum {
  199.     kNoFidelity                    = 0,
  200.     kMinimumFidelity            = 1,
  201.     kDefaultFidelity            = 500,                            /* I'm just picking a number for Apple default panels and engines*/
  202.     kDefaultManufacturerFidelity = 1000                            /* I'm just picking a number for Manufacturer's panels and engines (overrides apple defaults)*/
  203. };
  204.  
  205. enum {
  206.     kAnyPanelType                = 0,                            /* Pass to DMNewEngineList for list of all panels (as opposed to specific types)*/
  207.     kAnyEngineType                = 0,                            /* Pass to DMNewEngineList for list of all engines*/
  208.     kAnyDeviceType                = 0,                            /* Pass to DMNewDeviceList for list of all devices*/
  209.     kAnyPortType                = 0                                /* Pass to DMNewDevicePortList for list of all devices*/
  210. };
  211.  
  212. /* portListFlags for DM_NewDevicePortList */
  213. enum {
  214. /* Should offline devices be put into the port list (such as dummy display) */
  215.     kPLIncludeOfflineDevicesBit    = 0
  216. };
  217.  
  218. typedef unsigned long DMFidelityType;
  219.  
  220. /* AVID is an ID for ports and devices the old DisplayID type
  221.     is carried on for compatibility
  222. */
  223. typedef unsigned long AVIDType;
  224.  
  225. typedef AVIDType DisplayIDType;
  226.  
  227. typedef void *DMListType;
  228.  
  229. typedef unsigned long DMListIndexType;
  230.  
  231. typedef VDPowerStateRec AVPowerStateRec;
  232.  
  233. typedef VDPowerStateRec *AVPowerStatePtr;
  234.  
  235. struct DMComponentListEntryRec {
  236.     DisplayIDType                    itemID;                        /* DisplayID Manager*/
  237.     Component                        itemComponent;                /* Component Manager*/
  238.     ComponentDescription            itemDescription;            /* We can always construct this if we use something beyond the compontent mgr.*/
  239.     ResType                            itemClass;                    /* Class of group to put this panel (eg geometry/color/etc for panels, brightness/contrast for engines, video out/sound/etc for devices)*/
  240.     DMFidelityType                    itemFidelity;                /* How good is this item for the specified search?*/
  241.     ResType                            itemSubClass;                /* Subclass of group to put this panel.  Can use to do sub-grouping (eg volume for volume panel and mute panel)*/
  242.     Point                            itemSort;                    /* Set to 0 - future to sort the items in a sub group.*/
  243.     unsigned long                    itemFlags;                    /* Set to 0 (future expansion)*/
  244.     ResType                            itemReserved;                /* What kind of code does the itemReference point to  (right now - kPanelEntryTypeComponentMgr only)*/
  245.     unsigned long                    itemFuture1;                /* Set to 0 (future expansion - probably an alternate code style)*/
  246.     unsigned long                    itemFuture2;                /* Set to 0 (future expansion - probably an alternate code style)*/
  247.     unsigned long                    itemFuture3;                /* Set to 0 (future expansion - probably an alternate code style)*/
  248.     unsigned long                    itemFuture4;                /* Set to 0 (future expansion - probably an alternate code style)*/
  249. };
  250. typedef struct DMComponentListEntryRec DMComponentListEntryRec;
  251.  
  252. typedef DMComponentListEntryRec *DMComponentListEntryPtr;
  253.  
  254. /* ••• Move AVLocationRec to AVComponents.i AFTER AVComponents.i is created*/
  255. struct AVLocationRec {
  256.     unsigned long                    locationConstant;            /* Set to 0 (future expansion - probably an alternate code style)*/
  257. };
  258. typedef struct AVLocationRec AVLocationRec;
  259.  
  260. typedef AVLocationRec *AVLocationPtr;
  261.  
  262. struct DMDepthInfoRec {
  263.     VDSwitchInfoPtr                    depthSwitchInfo;            /* This is the switch mode to choose this timing/depth */
  264.     VPBlockPtr                        depthVPBlock;                /* VPBlock (including size, depth and format) */
  265.     unsigned long                    depthFlags;                    /* Reserved */
  266.     unsigned long                    depthReserved1;                /* Reserved */
  267.     unsigned long                    depthReserved2;                /* Reserved */
  268. };
  269. typedef struct DMDepthInfoRec DMDepthInfoRec;
  270.  
  271. typedef DMDepthInfoRec *DMDepthInfoPtr;
  272.  
  273. struct DMDepthInfoBlockRec {
  274.     unsigned long                    depthBlockCount;            /* How many depths are there? */
  275.     DMDepthInfoPtr                    depthVPBlock;                /* Array of DMDepthInfoRec */
  276.     unsigned long                    depthBlockFlags;            /* Reserved */
  277.     unsigned long                    depthBlockReserved1;        /* Reserved */
  278.     unsigned long                    depthBlockReserved2;        /* Reserved */
  279. };
  280. typedef struct DMDepthInfoBlockRec DMDepthInfoBlockRec;
  281.  
  282. typedef DMDepthInfoBlockRec *DMDepthInfoBlockPtr;
  283.  
  284. struct DMDisplayModeListEntryRec {
  285.     unsigned long                    displayModeFlags;
  286.     VDSwitchInfoPtr                    displayModeSwitchInfo;
  287.     VDResolutionInfoPtr                displayModeResolutionInfo;
  288.     VDTimingInfoPtr                    displayModeTimingInfo;
  289.     DMDepthInfoBlockPtr                displayModeDepthBlockInfo;    /* Information about all the depths*/
  290.     Ptr                                displayModeReserved1;        /* Reserved*/
  291.     Str255                            *displayModeName;            /* Name of the timing mode*/
  292. };
  293. typedef struct DMDisplayModeListEntryRec DMDisplayModeListEntryRec;
  294.  
  295. typedef DMDisplayModeListEntryRec *DMDisplayModeListEntryPtr;
  296.  
  297. struct DependentNotifyRec {
  298.     ResType                            notifyType;                    /* What type was the engine that made the change (may be zero)*/
  299.     ResType                            notifyClass;                /* What class was the change (eg geometry, color etc)*/
  300.     DisplayIDType                    notifyPortID;                /* Which device was touched (kInvalidDisplayID -> all or none)*/
  301.     ComponentInstance                notifyComponent;            /* What engine did it (may be 0)?*/
  302.     unsigned long                    notifyVersion;                /* Set to 0 (future expansion)*/
  303.     unsigned long                    notifyFlags;                /* Set to 0 (future expansion)*/
  304.     unsigned long                    notifyReserved;                /* Set to 0 (future expansion)*/
  305.     unsigned long                    notifyFuture;                /* Set to 0 (future expansion)*/
  306. };
  307. typedef struct DependentNotifyRec DependentNotifyRec;
  308.  
  309. typedef DependentNotifyRec *DependentNotifyPtr;
  310.  
  311. /* Exports to support Interfaces library containing unused calls */
  312. typedef pascal void (*DMNotificationProcPtr)(AppleEvent *theEvent);
  313. typedef pascal void (*DMExtendedNotificationProcPtr)(void *userData, short theMessage, void *notifyData);
  314. typedef pascal void (*DMComponentListIteratorProcPtr)(void *userData, DMListIndexType itemIndex, DMComponentListEntryPtr componentInfo);
  315. typedef pascal void (*DMDisplayModeListIteratorProcPtr)(void *userData, DMListIndexType itemIndex, DMDisplayModeListEntryPtr displaymodeInfo);
  316.  
  317. #if GENERATINGCFM
  318. typedef UniversalProcPtr DMNotificationUPP;
  319. typedef UniversalProcPtr DMExtendedNotificationUPP;
  320. typedef UniversalProcPtr DMComponentListIteratorUPP;
  321. typedef UniversalProcPtr DMDisplayModeListIteratorUPP;
  322. #else
  323. typedef DMNotificationProcPtr DMNotificationUPP;
  324. typedef DMExtendedNotificationProcPtr DMExtendedNotificationUPP;
  325. typedef DMComponentListIteratorProcPtr DMComponentListIteratorUPP;
  326. typedef DMDisplayModeListIteratorProcPtr DMDisplayModeListIteratorUPP;
  327. #endif
  328.  
  329. enum {
  330.     uppDMNotificationProcInfo = kPascalStackBased
  331.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(AppleEvent*))),
  332.     uppDMExtendedNotificationProcInfo = kPascalStackBased
  333.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void*)))
  334.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  335.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void*))),
  336.     uppDMComponentListIteratorProcInfo = kPascalStackBased
  337.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void*)))
  338.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(DMListIndexType)))
  339.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(DMComponentListEntryPtr))),
  340.     uppDMDisplayModeListIteratorProcInfo = kPascalStackBased
  341.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void*)))
  342.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(DMListIndexType)))
  343.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(DMDisplayModeListEntryPtr)))
  344. };
  345.  
  346. #if GENERATINGCFM
  347. #define NewDMNotificationProc(userRoutine)        \
  348.         (DMNotificationUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMNotificationProcInfo, GetCurrentArchitecture())
  349. #define NewDMExtendedNotificationProc(userRoutine)        \
  350.         (DMExtendedNotificationUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMExtendedNotificationProcInfo, GetCurrentArchitecture())
  351. #define NewDMComponentListIteratorProc(userRoutine)        \
  352.         (DMComponentListIteratorUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMComponentListIteratorProcInfo, GetCurrentArchitecture())
  353. #define NewDMDisplayModeListIteratorProc(userRoutine)        \
  354.         (DMDisplayModeListIteratorUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMDisplayModeListIteratorProcInfo, GetCurrentArchitecture())
  355. #else
  356. #define NewDMNotificationProc(userRoutine)        \
  357.         ((DMNotificationUPP) (userRoutine))
  358. #define NewDMExtendedNotificationProc(userRoutine)        \
  359.         ((DMExtendedNotificationUPP) (userRoutine))
  360. #define NewDMComponentListIteratorProc(userRoutine)        \
  361.         ((DMComponentListIteratorUPP) (userRoutine))
  362. #define NewDMDisplayModeListIteratorProc(userRoutine)        \
  363.         ((DMDisplayModeListIteratorUPP) (userRoutine))
  364. #endif
  365.  
  366. #if GENERATINGCFM
  367. #define CallDMNotificationProc(userRoutine, theEvent)        \
  368.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMNotificationProcInfo, (theEvent))
  369. #define CallDMExtendedNotificationProc(userRoutine, userData, theMessage, notifyData)        \
  370.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMExtendedNotificationProcInfo, (userData), (theMessage), (notifyData))
  371. #define CallDMComponentListIteratorProc(userRoutine, userData, itemIndex, componentInfo)        \
  372.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMComponentListIteratorProcInfo, (userData), (itemIndex), (componentInfo))
  373. #define CallDMDisplayModeListIteratorProc(userRoutine, userData, itemIndex, displaymodeInfo)        \
  374.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppDMDisplayModeListIteratorProcInfo, (userData), (itemIndex), (displaymodeInfo))
  375. #else
  376. #define CallDMNotificationProc(userRoutine, theEvent)        \
  377.         (*(userRoutine))((theEvent))
  378. #define CallDMExtendedNotificationProc(userRoutine, userData, theMessage, notifyData)        \
  379.         (*(userRoutine))((userData), (theMessage), (notifyData))
  380. #define CallDMComponentListIteratorProc(userRoutine, userData, itemIndex, componentInfo)        \
  381.         (*(userRoutine))((userData), (itemIndex), (componentInfo))
  382. #define CallDMDisplayModeListIteratorProc(userRoutine, userData, itemIndex, displaymodeInfo)        \
  383.         (*(userRoutine))((userData), (itemIndex), (displaymodeInfo))
  384. #endif
  385.  
  386. extern pascal GDHandle DMGetFirstScreenDevice(Boolean activeOnly)
  387.  TWOWORDINLINE(0x7000, 0xABEB);
  388. extern pascal GDHandle DMGetNextScreenDevice(GDHandle theDevice, Boolean activeOnly)
  389.  TWOWORDINLINE(0x7001, 0xABEB);
  390. extern pascal void DMDrawDesktopRect(Rect *globalRect)
  391.  TWOWORDINLINE(0x7002, 0xABEB);
  392. extern pascal void DMDrawDesktopRegion(RgnHandle globalRgn)
  393.  TWOWORDINLINE(0x7003, 0xABEB);
  394. extern pascal OSErr DMBeginConfigureDisplays(Handle *displayState)
  395.  THREEWORDINLINE(0x303C, 0x0206, 0xABEB);
  396. extern pascal OSErr DMEndConfigureDisplays(Handle displayState)
  397.  THREEWORDINLINE(0x303C, 0x0207, 0xABEB);
  398. extern pascal OSErr DMAddDisplay(GDHandle newDevice, short driver, unsigned long mode, unsigned long reserved, unsigned long displayID, Component displayComponent, Handle displayState)
  399.  THREEWORDINLINE(0x303C, 0x0D08, 0xABEB);
  400. extern pascal OSErr DMMoveDisplay(GDHandle moveDevice, short x, short y, Handle displayState)
  401.  THREEWORDINLINE(0x303C, 0x0609, 0xABEB);
  402. extern pascal OSErr DMDisableDisplay(GDHandle disableDevice, Handle displayState)
  403.  THREEWORDINLINE(0x303C, 0x040A, 0xABEB);
  404. extern pascal OSErr DMEnableDisplay(GDHandle enableDevice, Handle displayState)
  405.  THREEWORDINLINE(0x303C, 0x040B, 0xABEB);
  406. extern pascal OSErr DMRemoveDisplay(GDHandle removeDevice, Handle displayState)
  407.  THREEWORDINLINE(0x303C, 0x040C, 0xABEB);
  408. extern pascal OSErr DMSetMainDisplay(GDHandle newMainDevice, Handle displayState)
  409.  THREEWORDINLINE(0x303C, 0x0410, 0xABEB);
  410. extern pascal OSErr DMSetDisplayMode(GDHandle theDevice, unsigned long mode, unsigned long *depthMode, unsigned long reserved, Handle displayState)
  411.  THREEWORDINLINE(0x303C, 0x0A11, 0xABEB);
  412. extern pascal OSErr DMCheckDisplayMode(GDHandle theDevice, unsigned long mode, unsigned long depthMode, unsigned long *switchFlags, unsigned long reserved, Boolean *modeOk)
  413.  THREEWORDINLINE(0x303C, 0x0C12, 0xABEB);
  414. extern pascal OSErr DMGetDeskRegion(RgnHandle *desktopRegion)
  415.  THREEWORDINLINE(0x303C, 0x0213, 0xABEB);
  416. extern pascal OSErr DMRegisterNotifyProc(DMNotificationUPP notificationProc, ProcessSerialNumberPtr whichPSN)
  417.  THREEWORDINLINE(0x303C, 0x0414, 0xABEB);
  418. extern pascal OSErr DMRemoveNotifyProc(DMNotificationUPP notificationProc, ProcessSerialNumberPtr whichPSN)
  419.  THREEWORDINLINE(0x303C, 0x0415, 0xABEB);
  420. extern pascal OSErr DMQDIsMirroringCapable(Boolean *qdIsMirroringCapable)
  421.  THREEWORDINLINE(0x303C, 0x0216, 0xABEB);
  422. extern pascal OSErr DMCanMirrorNow(Boolean *canMirrorNow)
  423.  THREEWORDINLINE(0x303C, 0x0217, 0xABEB);
  424. extern pascal OSErr DMIsMirroringOn(Boolean *isMirroringOn)
  425.  THREEWORDINLINE(0x303C, 0x0218, 0xABEB);
  426. extern pascal OSErr DMMirrorDevices(GDHandle gD1, GDHandle gD2, Handle displayState)
  427.  THREEWORDINLINE(0x303C, 0x0619, 0xABEB);
  428. extern pascal OSErr DMUnmirrorDevice(GDHandle gDevice, Handle displayState)
  429.  THREEWORDINLINE(0x303C, 0x041A, 0xABEB);
  430. extern pascal OSErr DMGetNextMirroredDevice(GDHandle gDevice, GDHandle *mirroredDevice)
  431.  THREEWORDINLINE(0x303C, 0x041B, 0xABEB);
  432. extern pascal OSErr DMBlockMirroring(void)
  433.  TWOWORDINLINE(0x701C, 0xABEB);
  434. extern pascal OSErr DMUnblockMirroring(void)
  435.  TWOWORDINLINE(0x701D, 0xABEB);
  436. extern pascal OSErr DMGetDisplayMgrA5World(Ptr *dmA5)
  437.  THREEWORDINLINE(0x303C, 0x021E, 0xABEB);
  438. extern pascal OSErr DMGetDisplayIDByGDevice(GDHandle displayDevice, DisplayIDType *displayID, Boolean failToMain)
  439.  THREEWORDINLINE(0x303C, 0x051F, 0xABEB);
  440. extern pascal OSErr DMGetGDeviceByDisplayID(DisplayIDType displayID, GDHandle *displayDevice, Boolean failToMain)
  441.  THREEWORDINLINE(0x303C, 0x0520, 0xABEB);
  442. extern pascal OSErr DMSetDisplayComponent(GDHandle theDevice, Component displayComponent)
  443.  THREEWORDINLINE(0x303C, 0x0421, 0xABEB);
  444. extern pascal OSErr DMGetDisplayComponent(GDHandle theDevice, Component *displayComponent)
  445.  THREEWORDINLINE(0x303C, 0x0422, 0xABEB);
  446. extern pascal OSErr DMNewDisplay(GDHandle *newDevice, short driverRefNum, unsigned long mode, unsigned long reserved, DisplayIDType displayID, Component displayComponent, Handle displayState)
  447.  THREEWORDINLINE(0x303C, 0x0D23, 0xABEB);
  448. extern pascal OSErr DMDisposeDisplay(GDHandle disposeDevice, Handle displayState)
  449.  THREEWORDINLINE(0x303C, 0x0424, 0xABEB);
  450. extern pascal OSErr DMResolveDisplayComponents(void)
  451.  TWOWORDINLINE(0x7025, 0xABEB);
  452. extern pascal OSErr DMRegisterExtendedNotifyProc(DMExtendedNotificationUPP notifyProc, void *notifyUserData, unsigned short nofifyOnFlags, ProcessSerialNumberPtr whichPSN)
  453.  THREEWORDINLINE(0x303C, 0x07EF, 0xABEB);
  454. extern pascal OSErr DMRemoveExtendedNotifyProc(DMExtendedNotificationUPP notifyProc, void *notifyUserData, ProcessSerialNumberPtr whichPSN, unsigned short removeFlags)
  455.  THREEWORDINLINE(0x303C, 0x0726, 0xABEB);
  456. extern pascal OSErr DMNewAVPanelList(DisplayIDType displayID, ResType panelType, DMFidelityType minimumFidelity, unsigned long panelListFlags, unsigned long reserved, DMListIndexType *thePanelCount, DMListType *thePanelList)
  457.  THREEWORDINLINE(0x303C, 0x0C27, 0xABEB);
  458. extern pascal OSErr DMNewAVEngineList(DisplayIDType displayID, ResType engineType, DMFidelityType minimumFidelity, unsigned long engineListFlags, unsigned long reserved, DMListIndexType *engineCount, DMListType *engineList)
  459.  THREEWORDINLINE(0x303C, 0x0C28, 0xABEB);
  460. extern pascal OSErr DMNewAVDeviceList(ResType deviceType, unsigned long deviceListFlags, unsigned long reserved, DMListIndexType *deviceCount, DMListType *deviceList)
  461.  THREEWORDINLINE(0x303C, 0x0A29, 0xABEB);
  462. extern pascal OSErr DMNewAVPortListByPortType(ResType subType, unsigned long portListFlags, unsigned long reserved, DMListIndexType *devicePortCount, DMListType *theDevicePortList)
  463.  THREEWORDINLINE(0x303C, 0x0A2A, 0xABEB);
  464. extern pascal OSErr DMGetIndexedComponentFromList(DMListType panelList, DMListIndexType itemIndex, unsigned long reserved, DMComponentListIteratorUPP listIterator, void *userData)
  465.  THREEWORDINLINE(0x303C, 0x0A2B, 0xABEB);
  466. extern pascal OSErr DMDisposeList(DMListType panelList)
  467.  THREEWORDINLINE(0x303C, 0x022C, 0xABEB);
  468. extern pascal OSErr DMGetNameByAVID(AVIDType theID, unsigned long nameFlags, Str255 *name)
  469.  THREEWORDINLINE(0x303C, 0x062D, 0xABEB);
  470. extern pascal OSErr DMNewAVIDByPortComponent(Component thePortComponent, ResType portKind, unsigned long reserved, AVIDType *newID)
  471.  THREEWORDINLINE(0x303C, 0x082E, 0xABEB);
  472. extern pascal OSErr DMGetPortComponentByAVID(DisplayIDType thePortID, Component *thePortComponent, ComponentDescription *theDesciption, ResType *thePortKind)
  473.  THREEWORDINLINE(0x303C, 0x082F, 0xABEB);
  474. extern pascal OSErr DMSendDependentNotification(ResType notifyType, ResType notifyClass, AVIDType displayID, ComponentInstance notifyComponent)
  475.  THREEWORDINLINE(0x303C, 0x0A30, 0xABEB);
  476. extern pascal OSErr DMDisposeAVComponent(Component theAVComponent)
  477.  THREEWORDINLINE(0x303C, 0x0231, 0xABEB);
  478. extern pascal OSErr DMSaveScreenPrefs(unsigned long reserved1, unsigned long saveFlags, unsigned long reserved2)
  479.  THREEWORDINLINE(0x303C, 0x0632, 0xABEB);
  480. extern pascal OSErr DMNewAVIDByDeviceComponent(Component theDeviceComponent, ResType portKind, unsigned long reserved, DisplayIDType *newID)
  481.  THREEWORDINLINE(0x303C, 0x0833, 0xABEB);
  482. extern pascal OSErr DMNewAVPortListByDeviceAVID(AVIDType theID, DMFidelityType minimumFidelity, unsigned long portListFlags, unsigned long reserved, DMListIndexType *devicePortCount, DMListType *theDevicePortList)
  483.  THREEWORDINLINE(0x303C, 0x0C34, 0xABEB);
  484. extern pascal OSErr DMGetDeviceComponentByAVID(AVIDType theDeviceID, Component *theDeviceComponent, ComponentDescription *theDesciption, ResType *theDeviceKind)
  485.  THREEWORDINLINE(0x303C, 0x0835, 0xABEB);
  486. extern pascal OSErr DMNewDisplayModeList(DisplayIDType displayID, unsigned long modeListFlags, unsigned long reserved, DMListIndexType *thePanelCount, DMListType *thePanelList)
  487.  THREEWORDINLINE(0x303C, 0x0A36, 0xABEB);
  488. extern pascal OSErr DMGetIndexedDisplayModeFromList(DMListType panelList, DMListIndexType itemIndex, unsigned long reserved, DMDisplayModeListIteratorUPP listIterator, void *userData)
  489.  THREEWORDINLINE(0x303C, 0x0A37, 0xABEB);
  490. extern pascal OSErr DMGetGraphicInfoByAVID(AVIDType theID, PicHandle *theAVPcit, Handle *theAVIconSuite, AVLocationRec *theAVLocation)
  491.  THREEWORDINLINE(0x303C, 0x0838, 0xABEB);
  492. extern pascal OSErr DMGetAVPowerState(AVIDType theID, AVPowerStatePtr getPowerState, unsigned long reserved1)
  493.  THREEWORDINLINE(0x303C, 0x0839, 0xABEB);
  494. extern pascal OSErr DMSetAVPowerState(AVIDType theID, AVPowerStatePtr setPowerState, unsigned long powerFlags, Handle displayState)
  495.  THREEWORDINLINE(0x303C, 0x083A, 0xABEB);
  496. extern pascal OSErr DMGetDeviceAVIDByPortAVID(AVIDType portAVID, AVIDType *deviceAVID)
  497.  THREEWORDINLINE(0x303C, 0x043B, 0xABEB);
  498. extern pascal OSErr DMGetEnableByAVID(AVIDType theAVID, Boolean *isAVIDEnabledNow, Boolean *canChangeEnableNow)
  499.  THREEWORDINLINE(0x303C, 0x063C, 0xABEB);
  500. extern pascal OSErr DMSetEnableByAVID(AVIDType theAVID, Boolean doEnable, Handle displayState)
  501.  THREEWORDINLINE(0x303C, 0x053D, 0xABEB);
  502. extern pascal OSErr DMGetDisplayMode(GDHandle theDevice, VDSwitchInfoPtr switchInfo)
  503.  THREEWORDINLINE(0x303C, 0x043E, 0xABEB);
  504.  
  505. #if PRAGMA_IMPORT_SUPPORTED
  506. #pragma import off
  507. #endif
  508.  
  509. #if PRAGMA_ALIGN_SUPPORTED
  510. #pragma options align=reset
  511. #endif
  512.  
  513. #ifdef __cplusplus
  514. }
  515. #endif
  516.  
  517. #endif /* __DISPLAYS__ */
  518.